/* 3
Utilizzo del modulo VL53L0X e del display. Le misure effettuate sono fornite
in mm.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27,16,2); // Imposta l'indirizzo del display a 0x27 per 16 caratteri per 2 linee
#include <VL53L0X.h>
#define LONG_RANGE
#define HIGH_ACCURACY
VL53L0X sensor;
void setup ()
{
 lcd.init(); // inizializza il display
 lcd.backlight(); //accende la retroilluminazione
 // Scrittura dei testi sul display
 lcd.setCursor (0, 0);
 lcd.print ("CORSO ARDUINO ED");

 lcd.setCursor (0, 1);
 lcd.print ("ELEM.DI ROBOTICA");
 delay (3000);

 Serial.begin(9600);
 Wire.begin();
 sensor.init();
 sensor.setTimeout(500);
  #if defined LONG_RANGE
 sensor.setSignalRateLimit(0.2);
 sensor.setVcselPulsePeriod(VL53L0X ::VcselPeriodPreRange, 18);
 sensor.setVcselPulsePeriod(VL53L0X ::VcselPeriodFinalRange, 14);
 #endif
 #if defined HIGH_ACCURACY
 sensor.setMeasurementTimingBudget(200000);
 #endif
sensor.startContinuous();
}
void loop ()
{
 delay (1000);
 Serial.print(sensor.readRangeContinuousMillimeters());
 lcd.clear(); lcd.print(sensor.readRangeContinuousMillimeters());
 //if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT");
}
Serial.println();
}